Computing devices such as, for example, mobile communication devices are typically equipped with an operating system that manages hardware and software resources of the computing device. At the time of initialization of a computing device, for example at power-up, a boot (or “boot-up” or “booting”) process initiated by hardware or software is performed by a one or more processors included in the computing device. During the boot process, a bootloader may load the operating system or some other system software for the computing device after completion of initial power-up operations.
Some computing devices execute some version of the Android® operating system. Such devices include a nonvolatile memory containing the state of the operating system. The nonvolatile memory may include default components (which may be referred to, and/or stored as, “image files”) such as, but not limited to, a bootloader image, a boot image, a system image, a recovery image, a modem image, a user-data image, and a cache image.
The bootloader may be one of the first things executed when an Android mobile device is booted. The bootloader includes instructions to boot an operating system kernel (the core or main component of the operating system), which may be included in a boot image portion of the nonvolatile memory. The bootloader is typically locked to prevent replacement of the operating system kernel and/or other information stored in the boot image portion. Replacement of the operating system kernel can be done after the bootloader is unlocked.
Some enterprise users, such as organizations that provide their services via mobile devices, may need specific features (e.g., the enterprise users' own firmware/software build) to be introduced into the nonvolatile memory. These enterprise users may need to unlock the bootloader to disable specific features of a stock collection of images provided by an equipment manufacturer or mobile service provider, and modify or add their own features into the Android system for their particularized use (such as, but not limited to, disabling phone calls, SMS, or a built-in camera). However, conventionally, service providers and/or equipment manufacturers generally have not wished to allow bootloader unlocking and custom components to be loaded on their Android devices, for security reasons, or for protecting and verifying the integrity of information such as assets and customer information.